package day16_Runnable.demo09例子;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

public class Demo02_SliptFile {
    public  void show() throws Exception {
        /**
         * 文件切分
         *      1.获取总行数
         *      2./8 计算每个小文件的数据行数
         *      3.拆分
         */
        long sum = lineNum();//总行数
        int size=8;//拆分所少个文件
        long fileRow = sum / size;//每个文件的行数
        /**
         * 拆分
         */
        BufferedReader br = new BufferedReader(
                new FileReader("E:\\csw\\Demo\\a\\bigdata.txt"));
        int fileFlag=0;//写了多少文件
        BufferedWriter bw = new BufferedWriter(
                new FileWriter("E:\\csw\\Demo\\a\\student-"+fileFlag));

        long flag=0;
        String line;
        while ((line=br.readLine())!=null){
            flag++;
            if(flag>fileRow){//写入文件时,每一个文件写入的行数小于fileRow
                bw.flush();
                bw.close();
                fileFlag++;
                bw = new BufferedWriter(
                        new FileWriter("E:\\csw\\Demo\\a\\student-"+fileFlag));
                flag=0;
            }
            bw.write(line);
            bw.newLine();

        }
        br.close();

    }
    public  long lineNum()throws Exception{//获取总行数
        BufferedReader br = new BufferedReader(
                new FileReader("E:\\csw\\Demo\\a\\bigdata.txt"));
        String line;
        long sum=0;
        while ((line=br.readLine())!=null){
            sum++;
        }
        br.close();
        return sum;
    }
}
